package com.yibo.yunpicture.application.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yibo.yunpicture.interfaces.dto.space.analyze.*;
import com.yibo.yunpicture.interfaces.vo.space.analyze.*;
import com.yibo.yunpicture.domain.space.entity.Space;
import com.yibo.yunpicture.domain.user.entity.User;

import java.util.List;

public interface SpaceAnalyzeApplicationService{
    /**
     * 获取空间使用情况
     * @param spaceUsageAnalyzeDTO
     * @param loginUser
     * @return
     */
    SpaceUsageAnalyzeVO getSpaceUsageAnalyze(SpaceUsageAnalyzeDTO spaceUsageAnalyzeDTO, User loginUser);

    /**
     * 空间图片分类分析
     * @param spaceCategoryAnalyzeDTO
     * @param loginUser
     * @return
     */
    List<SpaceCategoryAnalyzeVO> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeDTO spaceCategoryAnalyzeDTO, User loginUser);


    /**
     * 空间图片标签分析
     * @param spaceTagAnalyzeDTO
     * @param loginUser
     * @return
     */
    List<SpaceTagAnalyzeVO> getSpaceTagAnalyze(SpaceTagAnalyzeDTO spaceTagAnalyzeDTO, User loginUser);

    /**
     * 空间图片大小分析
     * @param spaceSizeAnalyzeDTO
     * @param loginUser
     */
    List<SpaceSizeAnalyzeVO> getSpaceSizeAnalyze(SpaceSizeAnalyzeDTO spaceSizeAnalyzeDTO, User loginUser);

    /**
     * 获取空间用户分析
     * @param spaceUserAnalyzeDTO
     * @param loginUser
     * @return
     */
    List<SpaceUserAnalyzeVO> getSpaceUserAnalyze(SpaceUserAnalyzeDTO spaceUserAnalyzeDTO, User loginUser);

    /**
     * 空间使用排行分析
     * @param spaceRankAnalyzeDTO
     * @param loginUser
     * @return
     */
    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeDTO spaceRankAnalyzeDTO, User loginUser);
}
